package com.wang.userscenter.users.service;

import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import com.alibaba.fastjson2.JSONObject;
import com.wang.userscenter.common.util.PageInfoUtil;
import com.wang.userscenter.users.pojo.Aadmins;
import com.wang.userscenter.users.pojo.Arole;

/**
 * Service_一个Service持有多个dao
 * 此service只做crud;
 */
public interface UsersDbService {
	/**
	 * 查询多条角色(分页),同时支持分页和不分页
	 * 这个方法不是最终版本
	 * @return
	 */
	List<Arole> selectRoleList(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	
	/**
	 * 查询一条角色
	 * 这个方法不是最终版本
	 * @return
	 */
	Arole selectRoleOne(Map<String,Object> condMap);
	
	/**
	 * 保存一条角色
	 * 这个方法不是最终版本
	 * @return	含义:此条sql语句对数据库影响的条数
	 */
	JSONObject saveRoleOne(Arole pojo);
	
	/**
	 * 更新一条角色
	 * 这个方法不是最终版本
	 * @return	期望是一个json
{
	"code":"响应码",
	"info":"响应信息",
	"data":{
		"effect":"此条sql语句执行对数据库影响条数"
		"id":"",
	}
}
	 */
	JSONObject updateRoleOne(Arole pojo);
	
	/**
	 * 删除一条角色
	 * 这个方法不是最终版本
	 * @return
	 */
	JSONObject deleteRoleOne(Map<String,Object> condMap);
	
	/**
	 * 查询多条管理员(分页),同时支持分页和不分页
	 * 这个方法不是最终版本
	 * @return
	 */
	List<Aadmins> selectAdminsList(PageInfoUtil pageInfoUtil,Map<String,Object> condMap);
	
	/**
	 * 查询一条管理员
	 * 这个方法不是最终版本
	 * @return
	 */
	Aadmins selectAdminsOne(Map<String,Object> condMap);
	
	/**
	 * 保存一条管理员
	 * 这个方法不是最终版本
	 * @return	含义:此条sql语句对数据库影响的条数
	 * 
	 * @Transactional(rollbackFor = Exception.class):编辑式事务,写在代码里面的
	 */
	@Transactional(rollbackFor = Exception.class)
	JSONObject saveAdminsOne(Aadmins pojo) throws Exception;
	
	/**
	 * 更新一条管理员
	 * 这个方法不是最终版本
	 * @return	期望是一个json
{
	"code":"响应码",
	"info":"响应信息",
	"data":{
		"effect":"此条sql语句执行对数据库影响条数"
		"id":"",
	}
}
	 */
	JSONObject updateAdminsOne(Aadmins pojo);
	
	/**
	 * 删除一条管理员
	 * 这个方法不是最终版本
	 * @return
	 */
	JSONObject deleteAdminsOne(Map<String,Object> condMap);
}
